package info.motteke.mixivoice4j.http.html;

import info.motteke.mixivoice4j.Body;
import info.motteke.mixivoice4j.MixiVoiceException;

import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

/**
 * 最新のつぶやきに存在するコメントを表します。
 *
 * @author Y.Wakamatsu
 *
 */
public class RecentVoiceComment {

    private Element response;

    public RecentVoiceComment(Element response) {
        this.response = response;
    }

    public long getId() {
        Elements posttime = response.select(".commentPostTime");

        if (posttime.size() == 0) {
            throw new MixiVoiceException("最新のつぶやきのコメントから投稿時刻を取得できません。");
        }

        return Long.parseLong(posttime.val());
    }

    public RecentVoiceCommentUser getUser() {
        return new RecentVoiceCommentUser(response);
    }

    public Body getBody() {
        Elements body = response.select("p.commentBody");

        if (body.size() == 0) {
            throw new MixiVoiceException("最新のつぶやきからのコメントから本文を取得できません。");
        }
        return new Body(body.get(0));
    }
}
